昨天我們討論的函式,是沒有返回數值的函式,只是單純傳入參數做運算後,直接輸出。但我們更多時候會需要把參數傳入函式,會返回一個數值,再利用那個數值繼續做後續的計算。所以,今天會來講有返回數值的函式!
我們一樣先來看一段程式碼:
#include<stdio.h>
float square(float);
int main(){
float n, answer;
printf("Please input a number>>");
scanf("%f", &n);
answer = square(n);
printf("\n");
printf("The answer is %.3f", answer);
return 0;
}
float square(float a){
float A;
A = a*a;
return A;
}
輸出結果:
程式說明:
float square(float);
這個一樣是函式宣告,和昨天的程式碼不同的是,昨天的程式碼沒有返回數值,所以返回數值型態為 void
,今天的程式碼是會返回數值的,返回數值型態為 float
(第一個 float
),而小括號 ()
裡面的依然是傳入參數的型態,在這裡也是 float
。square()
函式的部分:裡面有一行程式碼是 return A
,這一行就是我們返回在函式內計算後的數值。answer = square(n);
,這一行的意思就是,把經過函式計算後返回的值存在變數 answer
中,方便輸出。我們也可以把程式碼修改一下:
#include<stdio.h>
float square(float);
int main(){
float n;
printf("Please input a number>>");
scanf("%f", &n);
printf("The answer is %.3f", square(n));
return 0;
}
float square(float a){
return a*a;
}
上面程式碼中,我們更改了原本函式多宣告一個變數 A
的地方,讓函式直接返回輸入函數的平方。也更改了主程式中多宣告變數 answer
的地方,使程式碼更精簡!
明天,就讓我們來講講遞迴!